
$(function () {
    /**
     * Sidebar Dropdown
     */
    $('.nav-dropdown-toggle').on('click', function (e) {
        e.preventDefault();
        $(this).parent().toggleClass('open');
    });

    // open sub-menu when an item is active.
    $('ul.nav').find('a.active').parent().parent().parent().addClass('open');

    /**
     * Sidebar Toggle
     */
    $('.sidebar-toggle').on('click', function (e) {
        e.preventDefault();
        $('body').toggleClass('sidebar-hidden');
    });

    /**
     * Mobile Sidebar Toggle
     */
    $('.sidebar-mobile-toggle').on('click', function () {
        $('body').toggleClass('sidebar-mobile-show');
    });
    var arr = currentUrl.split('/');
    var paths = '/Admin';
    if (arr.length > 2) {
        if (arr[2] !== "") {
            paths = '/' + arr[1] + '/' + arr[2];
        } else {
            paths = '/' + arr[1];
        }
    }
    $(".nav").find("a").each(function (x) {
        if ($(this).attr('href').indexOf(paths)>-1) {
            $(this).addClass('active');
            $(this).parent().parent().parent().toggleClass('open');
        } else {
            $(this).removeClass('active');
        }
    })
});
/**
 * 显示 加载等待框
 * @param {any} str 加载文本内容
 */
window.showLoading = function (str) {
    var cssval = $("#loadings").css('display');
    if (cssval !== 'none') return;
    if (str !== null && str !== undefined && str !== '' && (typeof str === 'string' || str instanceof String)) {
        $("#loadings-text").text(str);
    }
    $("#loadings").css('display', '');
};

/**
 * 隐藏 加载等待框
 */
window.hideLoading = function () {
    var cssval = $("#loadings").css('display');
    if (cssval === '') return;
    $("#loadings").css('display', 'none');
};

/**
 * Url 请求
 * @param {any} url 请求地址
 * @param {any} param 参数
 * @param {any} type 类型 post/get
 * @param {any} dataType 数据类型
 * @param {any} successFn 成功后的回调
 * @param {any} errorFn 失败的回调
 * @param {any} model 是否调用遮罩层
 */
function ajaxRequestData(url, param, type, dataType, successFn, errorFn, model) {
     type = type || "get";
     dataType = dataType || "json";
     successFn = successFn || "";
     model = model || true;
     errorFn = errorFn || "";
    $.ajax({
        type: type,
        url: url,
        data: param,
        cache: false,
        dataType: dataType,
        beforeSend: function () {
            if (model) {
                window.showLoading('正在请求，请稍等');
            }
        },
        success: function (data) {
            window.hideLoading();
            if (data.code>-1) {
                if (data.code === messageType.error)
                    messageAlert(data.error_msg, 10, 3);
                else if (data.code === messageType.throws)
                    messageAlert(data.error_msg, 10, 4);
                else if (data.code === messageType.success)
                    messageAlert(data.error_msg, 5); 
                else if (data.code === messageType.purviewLack)
                    messageAlert(data.error_msg, 6);
            }
            successFn(data);
        },
        complete: function () {
            window.hideLoading();
        },
        error: function (e) {
            if (errorFn !== '') {
                errorFn(e)
            }
        }
    });
}

/**
 * Get 请求
 * @param {any} url 请求地址
 * @param {any} param 参数
 * @param {any} successFn 成功后的回调
 * @param {any} errorFn 失败的回调
 * @param {any} model 是否调用遮罩层
 */
function ajaxRequestGetData(url, param, successFn, errorFn, model) {
     successFn = successFn || "";
     model = model || true;
     errorFn = errorFn || "";
    $.ajax({
        type: 'get',
        url: url,
        data: param,
        cache: false,
        dataType: 'json',
        beforeSend: function () {
            if (model) {
                window.showLoading('正在请求，请稍等');
            }
        },
        success: function (data) {
            window.hideLoading();
            if (data.code > -1) {
                if (data.code === messageType.error)
                    messageAlert(data.error_msg, 10, 3);
                else if (data.code === messageType.throws)
                    messageAlert(data.error_msg, 10, 4);
                else if (data.code === messageType.success)
                    messageAlert(data.error_msg, 5);
                else if (data.code === messageType.purviewLack)
                    messageAlert(data.error_msg, 6);
            }
            successFn(data);
            
        },
        complete: function () {
            window.hideLoading();
        },
        error: function (e) { 
            if (errorFn !== '') {
                errorFn(e)
            }
        }
    });
}

/**
 * POST 请求
 * @param {any} url 请求地址
 * @param {any} param 参数
 * @param {any} successFn 成功后的回调
 * @param {any} errorFn 失败的回调
 * @param {any} model 是否调用遮罩层
 */
function ajaxRequestPostData(url, param, successFn, errorFn, model) {
     successFn = successFn || "";
     model = model || true;
     errorFn = errorFn || "";
    $.ajax({
        type: 'post',
        url: url,
        data: param,
        cache: false,
        dataType: 'json',
        beforeSend: function () {
            if (model) {
                window.showLoading('正在请求，请稍等');
            }
        },
        success: function (data) {
            window.hideLoading();
            if (data.code>-1) {
                if (data.code === messageType.error)
                    messageAlert(data.error_msg, 10, 3);
                else if (data.code === messageType.throws)
                    messageAlert(data.error_msg, 10, 4);
                else if (data.code === messageType.success)
                    messageAlert(data.error_msg, 5);
                else if (data.code === messageType.purviewLack)
                    messageAlert(data.error_msg, 6);
            }
            successFn(data);
        },
        complete: function () {
            window.hideLoading();
        },
        error: function (e) {
            if (errorFn !== '') {
                errorFn(e)
            }
        }
    });
}
/**
 * 错误类型
 */
var messageType = {
    success: 0,
    noChanged: 1,
    paramError: 2,
    queryNull: 4,
    purviewLack: 8,
    illegalOperation: 16,
    warning: 32,
    error: 64,
    throws: 99,
    getList: 200,
    getData:201
}
/**
 * 自动关闭消息框
 */
function  closeMsg() {
    closeAlert();
    clearTimeout(timeOut);
}
/**
 * 关闭提示框
 */
function closeAlert() {
    $("#sysMsg").prop('class', 'alert alert-dismissible alert-primary');
    $("#sys_Msg_txt").text('');
    $("#sysMsg").css("display", 'none');
}

var timeOut;
/**
 * 消息提示
 * @param {any} txt 消息文明
 * @param {any} times 显示时间 默认3秒
 * @param {any} type 消息类型 1 success,2 info,3 warning,4 danger,5 secondary,6 primary 默认 success
 */
function messageAlert(txt, times,type) {
    txt = txt || '操作成功';
    times = typeof times === 'number' ? 3 * 1000 : times * 1000;
    type = type || 1;
    var className = 'alert alert-dismissible alert-success';
    if (type === 1) {
        className = 'alert alert-dismissible alert-success';
    }else if (type === 2) {
        className = 'alert alert-dismissible alert-info';
    } else if (type === 3) {
        className = 'alert alert-dismissible alert-warning';
    } else if (type === 4) {
        className = 'alert alert-dismissible alert-danger';
    } else if (type === 5) {
        className = 'alert alert-dismissible alert-secondary';
    } else if (type === 6) {
        className = 'alert alert-dismissible alert-primary';
    }
    $("#sysMsg").prop('class', className);
    $("#sys_Msg_txt").text(txt);
    $("#sysMsg").css("display", '');
     timeOut = setTimeout(function() {
         closeMsg(timeOut);
     }, times);
}
/**
 * 系统消息
 * @param {any} txt 消息内容
 * @param {any} secend 时间 单位 秒
 * @param {any} messageType 消息类型 1 success,2 info,3 warning,4 danger,5 secondary,6 primary 默认 success
 */
window.messages = function(txt, secend, messageType) {
    messageAlert(txt, secend, messageType);
}

/**
 *  弹出选择框
 * @param {any} vm 传入vue
 * @param {any} title 标题
 * @param {any} context 内容
 * @param {any} result  返回
 */
window.showConfirm = function (vm, title, context, result) {
    if (!vm) return;
    title = title || '提示';
    context = context || '提示';
    result = result || ''
    vm.$confirm(context, title, {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning'
    }).then(function() {
        result(true);
    }).catch(function() {
        result(false);
    })
}
/*
//这段js要放在页面最下方  
var h = window.innerHeight,w=window.innerWidth;  
//禁用右键 （防止右键查看源代码）  
window.oncontextmenu=function(){return false;}  
//在本网页的任何键盘敲击事件都是无效操作 （防止F12和shift+ctrl+i调起开发者工具）  
window.onkeydown = window.onkeyup = window.onkeypress = function () {  
    window.event.returnValue = false;  
    return false;  
}  
//如果用户在工具栏调起开发者工具，那么判断浏览器的可视高度和可视宽度是否有改变，如有改变则关闭本页面  
window.onresize = function () {  
    if (h !== window.innerHeight||w!==window.innerWidth){  
        window.close();  
        window.location = "about:blank";  
    }  
} 
*/ 
/*好吧，你的开发者工具是单独的窗口显示，不会改变原来网页的高度和宽度， 
但是你只要修改页面元素我就重新加载一次数据,让你无法修改页面元素（不支持IE9以下浏览器）*/  
if(window.addEventListener){  
    //window.addEventListener("DOMCharacterDataModified", function(){window.location.reload();}, true);  
    //window.addEventListener("DOMAttributeNameChanged", function(){window.location.reload();}, true);  
    //window.addEventListener("DOMCharacterDataModified", function(){window.location.reload();}, true);  
    //window.addEventListener("DOMElementNameChanged", function(){window.location.reload();}, true);  
    //window.addEventListener("DOMNodeInserted", function(){window.location.reload();}, true);  
    //window.addEventListener("DOMNodeInsertedIntoDocument", function(){window.location.reload();}, true);  
    //window.addEventListener("DOMNodeRemoved", function(){window.location.reload();}, true);  
    //window.addEventListener("DOMNodeRemovedFromDocument", function(){window.location.reload();}, true);  
    //window.addEventListener("DOMSubtreeModified", function(){window.location.reload();}, true);  
} 